home *** CD-ROM | disk | FTP | other *** search
- import java.awt.image.MemoryImageSource;
-
- public class FadeTransition extends BannerTransition {
- static final int TOTAL_FRAMES = 8;
- static final int MULTIPLIER = 6102575;
- int[][] random = null;
- int pixelsPerFrame = 0;
-
- public FadeTransition() {
- super.numOfFrames = 7;
- }
-
- public void finishInit() {
- this.pixelsPerFrame = super.pixelsPerImage / 8;
- this.random = new int[8][this.pixelsPerFrame];
- int[] random_count = new int[8];
-
- for(int s = 0; s < 8; ++s) {
- random_count[s] = 0;
- }
-
- int roundedPixelsPerImage = this.pixelsPerFrame * 8;
- int seed = (int)System.currentTimeMillis();
-
- int denominator;
- for(denominator = 10; (this.pixelsPerFrame % denominator > 0 || super.imageHeight % denominator == 0) && denominator > 1; --denominator) {
- }
-
- int newRandomsPerFrame = this.pixelsPerFrame / denominator;
- int newRandoms = roundedPixelsPerImage / denominator;
-
- int frame;
- for(int p = 0; p < newRandomsPerFrame; this.random[frame][random_count[frame]++] = p++) {
- seed *= 6102575;
- frame = seed >>> 29;
- }
-
- seed += 20560;
-
- try {
- Thread.sleep(150L);
- } catch (InterruptedException var16) {
- }
-
- for(int p = newRandomsPerFrame; p < newRandoms; this.random[frame][random_count[frame]++] = p++) {
- seed *= 6102575;
- frame = seed >>> 29;
-
- while(random_count[frame] >= newRandomsPerFrame) {
- ++frame;
- if (frame >= 8) {
- frame = 0;
- }
- }
- }
-
- for(int s = 0; s < super.numOfFrames; ++s) {
- for(int ps = newRandomsPerFrame; ps < this.pixelsPerFrame; ps += newRandomsPerFrame) {
- for(int p = 0; p < newRandomsPerFrame; ++p) {
- this.random[s][ps + p] = this.random[s][p] + ps * 8;
- }
- }
-
- try {
- Thread.sleep(50L);
- } catch (InterruptedException var15) {
- }
- }
-
- System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, 0, super.workPixels, 0, super.pixelsPerImage);
-
- for(int f = 0; f < super.numOfFrames; ++f) {
- try {
- Thread.sleep(100L);
- } catch (InterruptedException var14) {
- }
-
- for(int p = 0; p < this.pixelsPerFrame; ++p) {
- super.workPixels[this.random[f][p]] = super.owner.banners[super.owner.nextBanner].imagePixels[this.random[f][p]];
- }
-
- try {
- Thread.sleep(50L);
- } catch (InterruptedException var13) {
- }
-
- super.frames[f] = super.owner.createImage(new MemoryImageSource(super.imageWidth, super.imageHeight, super.workPixels, 0, super.imageWidth));
- super.owner.prepareImage(super.frames[f], super.owner);
- }
-
- super.workPixels = null;
- }
- }
-